#ifndef RENDER_AGENT_INTERFACE_H
#define RENDER_AGENT_INTERFACE_H

#include "Sketch.h"

class RenderAgentInterface
{
public:
	virtual ~RenderAgentInterface(void) {}

	// Returns a char array containing the name of the particular sketch type
	virtual char * sketchTypeName() const = 0;

	// Adds any sketch type specific 2D rendering that must be done
	// over and above the normal display of the drawn lines
	virtual void renderExtra2D(int numPixels, const int pixel[][2]) = 0;

	// Called once to setup the correct OpenGL environment for 3D rendering
	virtual void initialize3D() = 0;

	// Called whenever the SketchModel changes
	virtual void generate3DModel(vector<CSketch *> sketches, int sketch_area_width, int sketch_area_height) = 0;

	// Fully renders the 3D object that the sketch represents
	virtual void render3D() = 0;
};

#endif
